package com.zero.yygh.common.handler;

import com.zero.yygh.common.exception.CommonException;
import com.zero.yygh.common.result.Result;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 * @author zero
 * @desc 全局异常处理
 * @create 2021/3/11
 */
@ControllerAdvice
public class GlobalExceptionHandler {

    /**
     * 通用异常处理
     * @param e 异常
     * @return 处理失败
     */
    @ExceptionHandler(Exception.class)
    @ResponseBody
    public Result<String> error(Exception e) {
        e.printStackTrace();
        return Result.fail();
    }

    /**
     * 自定义异常处理
     * @param e 异常
     * @return 异常处理结果
     */
    @ExceptionHandler(CommonException.class)
    @ResponseBody
    public Result<String> error(CommonException e) {
        return Result.build(e.getCode(), e.getMessage());
    }

}
